package com.utils;

import java.util.concurrent.*;

/**
 * 线程池工具类
 */
public class ExecutorUtils {
    private static ThreadPoolExecutor executor = null;

    static {
        executor = new ThreadPoolExecutor(
                5, // 核心线程的数量(初始化的数量)
                10, // 线程池能容纳最大线程数量
                2, // 时间
                TimeUnit.MINUTES, // 时间单位
                new LinkedBlockingQueue<>(100000),// , // 队列
                Executors.defaultThreadFactory(), // 创建线程的工厂
                new ThreadPoolExecutor.AbortPolicy()); // 拒绝策略
    }

    /**
     * 返回我们项目定义的线程池，只要使用线程都从这个线程中获取
     *
     * @return
     */
    public static ThreadPoolExecutor getExcutorsPool() {
        return executor;
    }
}
